/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo;

import controlador.IProveedorController;
import java.util.*;
import modelo.persistencia.IProveedorDAO;
import modelo.persistencia.ProveedorDAO;

/**
 *
 * @author Juanma
 */
public class ProveedorModel implements IProveedorModel{

    private IProveedorController controller;

    public IProveedorController getController() {
        return controller;
    }

    public void setController(IProveedorController controller) {
        this.controller = controller;
    }

    public void nuevoProveedor(IProveedor proveedor) {
        IProveedorDAO dao = obtenerImplementacionProveedorDAO();
        dao.create(proveedor);
        fireModelChanged();
    }

    public void eliminarProveedor(IProveedor proveedor) {
        IProveedorDAO dao = obtenerImplementacionProveedorDAO();
        dao.delete(proveedor);
        fireModelChanged();
    }

    public IProveedor obtenerProveedor(int ID) {
        IProveedorDAO dao = obtenerImplementacionProveedorDAO();
        return dao.read(ID);
    }

    public void actualizarProveedor(IProveedor proveedor) {
        IProveedorDAO dao = obtenerImplementacionProveedorDAO();
        dao.update(proveedor);
        fireModelChanged();

    }

    public List<IProveedor> obtenerProveedor() {
        IProveedorDAO dao = obtenerImplementacionProveedorDAO();
        return dao.list();
    }

    private IProveedorDAO obtenerImplementacionProveedorDAO() {
        //return new ContactoDAOFile();
        return new ProveedorDAO();
    }

    protected void fireModelChanged() {
        getController().fireDataModelChanged();
    }
}
